یونی کد چیست؟

از چند سال پيش در كشورمان، استفاده از كامپيوتر با سرعت سرسام‌آوري جاي خود را در تمامي عرصه‌ها باز كرد و سيل كامپيوترهاي شخصي و تجهيزات جانبي آنها به سوي كشور سرازير شد. اما بايستي اعتراف كرد كه با وجود اين كه سرعت سوق به سوي تكنولوژي ديجيتال در ايران روند خوبي را طي نموده، اما در زمينه ارائه اطلاعات و پردازش آن به زبان فارسي تشتتي در اين ميان ايجاد گرديد. يكي از عوامل موثر در اين ناهماهنگي، نبود الگويي واحد براي ذخيره و پردازش و نمايش اطلاعات بر روي رسانه‌هاي جديد اطلاع‌رساني همچون كامپيوتر در سطح ملي است.
نرم‌افزارهاي متفاوت، با فرمت‌هاي مختلف، كدهاي فارسي گوناگون و ... در حال استفاده‌اند و روزانه ميزان قابل توجهي از اطلاعات را در خود جاي مي‌دهند. اگر از آن دسته از مراكزي كه به دليل عدم آگاهي كافي اطلاعات را به صورت ناقص جمع‌آوري و وارد مي‌كنند (كه حدود 80 درصد جامعه مورد نظر را تشكيل مي‌دهند) بگذريم به تفرق، اختلاف و اعمال سليقه‌هاي مختلف در ساير مراكز خواهيم رسيد كه براي نمونه به اختلاف در مورد كدنويسه‌هاي به كار رفته براي حروف فارسي روي كامپيوتر مي‌توان اشاره كرد.

نتيجه ادامه روند جاري

در مورد مراكزي كه به هر حال مشغول سرمايه‌گذاري در بخش ورود، پردازش و نمايش اطلاعات هستند مسئله به نوع ديگري خود را نشان خواهد داد. اين گونه مراكز تا زماني كه پاي خود را از محدوده مركز خود فراتر نگذاشته‌اند مشكلي نخواهند داشت، ولي به محض آنكه بخواهند با مراكز اطلاعاتي و تحقيقاتي ديگر ارتباط برقرار كرده يا به مبادله اطلاعات با اين مركز بپردازند متوجه خواهند شد كه سال‌ها سرمايه‌هاي خود را بر بادداده‌اند.
همين مشكل در سطح ملي براي ايجاد يك مركز اطلاعات ملي رخ خواهد نمود. زماني اين مشكل ملي بيشتر نمود پيدا مي‌كند كه بحث شبكه جهاني اينترنت نيز به ميان آيد.
اينترنت به عنوان كليدي براي ارتباط با ديگر مراكز اطلاعاتي - به علت در دسترس بودن آسان و همچنين حجم عظيم اطلاعات موجود در آن- يكي از مهم‌ترين موضوعاتي خواهد بود كه به علت عدم وجود يك سيستم جهاني براي ذخيره، بازيابي، پردازش و نمايش اطلاعات و به طور كلي مبادله اطلاعات كه جنبه‌هاي ملي نيز داشته باشد، داراي نقاط ضعفي است كه ما را از بهره‌برداري مناسب در جهت منافعمان باز مي‌دارد.

راه حل چيست؟

از زماني كه اولين گزارش «زبان فارسي و كامپيوتر» در سال 1356 در دانشكده رياضي و كامپيوتر دانشگاه صنعتي شريف ارائه شد، تا امروز كه شبكه اينترنت چهره ديگري به اطلاع‌رساني داده است، مدت زيادي مي‌گذرد. امروزه ديگر محدوديت‌هاي سخت‌افزاري يا نرم‌افزاري نمي‌تواند مانع پياده‌سازي يك سيستم ذخيره‌سازي، نمايش، و تبادل اطلاعات چندزبانه گردد. امروزه مؤسسات بزرگ استانداردسازي چون ايزو ( ISO ) و W3 Consortium نيز، در استانداردهايشان مشكلات و مسائل مربوط به جهاني‌سازي را در نظر مي‌گيرند تا امر تبادل اطلاعات چند زبانه را تسهيل نمايند. اما به نظر مي‌رسد كه به دليل عدم حضور ايرانيان و فارسي‌زبان‌ها در اين روند، زبان فارسي قدري غريب مانده و كمتر به آن توجه شده است. به عنوان مثال، هنوز در بين صدها مجموعه‌نويسه( Character Set ) ثبت شده در اينترنت توسط يانا (Internet Assigned Number Authority)، تنها يك مجموعه‌نويسه ثبت شده متعلق به زبان فارسي است كه آن هم كد پيج اختصاصي شركت آيبيام است. حتي در مورد استاندارد كلي تبادل اطلاعات نيز قالبي كه مورد توافق همه باشد وجود ندارد. سه قالب موجود، ايران سيستم، استاندارد 2900 و استاندارد 3342 ، هر يك ايراداتي دارند كه سبب شده است شركت‌ها و مؤسسات داخلي به جدول‌هاي خاص خود روي آورند تا بتوانند نيازهاي خود را تا حدي رفع سازند.
اخيراً راه‌حل‌هايي در هر يك از مسائل خاص مربوط به تبادل اطلاعات براي بين‌المللي‌سازي در نظر گرفته شده است كه با وجود اين كه اين موارد كامل‌تر از جداولي است كه در ايران براي حل مشكلات تبادل اطلاعات زبان فارسي ايجاد گرديده، ولي به خاطر عدم وجود مراجع موثق در مورد خط و زبان فارسي براي استانداردگذاران، مسائل خاص اين زبان يا در نظر گرفته نشده و يا به شكل ناقص منظور شده است. خوشبختانه بسياري از اين استانداردها امكان گسترش بعدي را در نظر گرفته‌اند كه روند تصحيح را تسهيل مي‌كند.

يوني‌كد چيست؟

از جمله استانداردهاي بين‌المللي كه كامل‌تر از بقيه استانداردهاي موجود به رفع نيازهاي مربوط به تبادل اطلاعات چند زبانه پرداخته‌است، مي‌توان به استاندارد يوني‌كد اشاره كرد.
اين استاندارد، تقريباً توسط تمامي شركت‌هاي بين‌المللي كامپيوتري، مانند آيبيام، مايكروسافت، و سان، و نيز موسسات ملي استاندارد در كشورهاي مختلف جهان براي تبادل اطلاعات چندزبانه مورد توافق قرار گرفته است و سرعت رشد بسيار زيادي نيز در ميان كاربران دارد. همين‌طور، در حال حاضر كليه استانداردهاي جديدي كه براي شبكه اينترنت طراحي مي‌شوند، اين دو استاندارد را به‌عنوان كدپيج پيش‌فرض مي‌پذيرند كه استاندارد XML و زبان جاوا از آن جمله‌اند.
به زبان ساده مي‌توان گفت كه يوني‌كد روشي براي تبديل متون به رشته‌هاي عددي قابل ذخيره در كامپيوتر است. روش‌هاي گوناگوني براي اين كار وجود دارند، ولي مزيت يوني‌كد نسبت به آنها، اين است كه يك روش كامل جهاني است؛ به اين معني كه حروف همه زبان‌هاي دنيا و تمامي علائم مورد استفاده همه مردم جهان در آن آمده‌اند و همچنين در همه‌جا قابل نمايش است و نياز به امكانات خاصي ندارد. البته يوني‌كد هنوز جوان است ولي امروزه بسياري نرم‌افزارهاي رايج در جهان (از جمله همه مرورگرهاي جديد اينترنت) آن را پشتيباني مي‌كنند.
از مهم‌ترين مزايايي كه يوني‌كد براي زبان فارسي دارد (مثل بسياري زبان‌هاي ديگر) مي‌توان موارد زير را نام برد:
1. در نسخه استاندارد هر نرم‌افزاري كه از اين استاندارد پشتيباني كند، مي‌توان فارسي نوشت يا متون فارسي را خواند. بدين ترتيب ديگر نيازي به تأمين نسخه‌هاي خاص فارسي يا عربي نيست.
2. براي خواندن متون فارسي كه توسط شركت خاصي نوشته شده‌اند، نيازي به داشتن فونت خاص آن شركت نداريم و هر متن فارسي كه با استاندارد يوني‌كد، كدگذاري شده باشد، با هر فونت يوني‌كدي قابل مشاهده است.
3. امكان استفاده هم‌زمان از زبان‌هاي فارسي و انگليسي را تأمين مي‌كند.
4. بدون استفاده از فونت‌هاي خاص امكان استفاده از علائم خاص را فراهم مي‌كند.
به بيان ديگر، «استاندارد يوني‌كد» استاندارد جهاني كدگذاري كاركترهاست كه براي پردازش كامپيوتري متون به كار مي‌رود. اين استاندارد همان كاراكترها و كدهاي استاندارد ISO/IEC 10646 را داراست و كاملا با آن سازگار است. پس در واقع هر پياده‌سازي سازگار با يوني‌كد، با ISO/IEC 10646 نيز سازگار است.
يوني‌كد امكان كدگذاري همه كاراكترهاي مورد استفاده در نوشتن زبان‌هاي دنيا را فراهم آورده‌است. اين استاندارد از كدگذاري 16بيتي استفاده مي‌كند كه براي بيش از65000 نويسه (كاراكتر) جا فراهم مي‌كند. اگر چه 65000 نويسه براي كدگذاري اكثر نويسه‌هايي كه در زبان‌هاي مهم دنيا استفاده مي‌شود كافي است، با اين حال يوني‌كد شيوه‌گسترشي به‌نام UTF-16 فراهم‌كرده‌است كه امكان اضافه‌كردن حدود يك ميليون نويسه ديگر را نيز مي‌دهد. اين دامنه براي كليه نويسه‌هاي عالم، از جمله پوشش كامل همه خط‌هاي باستاني (همچون خط ميخي) نيز كافي است.
يوني‌كد براي كليه نويسه‌هاي مورد استفاده در زبان‌هاي عمده دنيا كد تعيين‌كرده‌است. به‌علت گسترده‌بودن فضاي تخصيص نويسه، اين استاندارد بسياري از نمادهاي لازم براي حروف‌چيني را نيز در بر گرفته‌است. از خط‌هاي مورد پشتيباني اين استاندارد مي‌توان به لاتين (دربرگيرنده اكثر زبان‌هاي اروپايي)، سيريليك(روسي، صربي)، يوناني، عربي (شامل عربي، فارسي، اردو، كردي)، عبري، هندي، ارمني، آسوري، چيني، كاتاكانا و هيراگانا(ژاپني)، و هانگول (كره‌اي) اشاره‌كرد. به‌علاوه، تعداد زيادي نماد رياضي و فني علائم نقطه‌گذاري، پيكان، و علامت‌هاي متفرقه‌در اين استاندارد وجود دارد. اين استاندارد براي علامت‌هاي ‌تركيب‌شونده‌ يا اعراب‌ها نيز كدهايي در نظر گرفته‌است كه‌از جمله آنها علامت‌هايي چون «?» (مد)هستند كه در تركيبب حروف پايه، حروف تغييرلحن يافته‌اي چون «?» را مي‌سازند.
به طور كلي، بعضي از مشخصات يوني‌كد به شرح زير است:

نويسه‌هاي شانزده‌بيتي

يكي‌سازي (اختصاص يك كد به نويسه‌هاي مشترك در چند زبان مختلف)
نويسه، نه شكل (يك «ع»، و نه چهارتا: «ع»، «ع»، «ع»، «ع » )
بار معنايي (حرف‌بودن، مقدار عددي، ...)
در استاندارد يوني‌كد، نويسه‌هاي فارسي در بلوك مربوط به‌خط‌ عربي‌ قرار دارند. اين بلوك‌براي دربرگرفتن نويسه‌هاي زبان‌هايي كه‌از خط عربي‌استفاده‌مي‌كنند، مثل فارسي، اردو، پشتو، سندي، و كردي گسترش يافته است. اين بلوك نشانه‌هاي قرآني از قبيل نشانه‌هاي سجده و پايان آيه، و علائم وقف را نيز در بردارد.
در يوني‌كد با وجود يكي‌سازي كدهاي حروف مشترك، براي حروف فارسي كه بار معنايي يا نمايشي متفاوت با حروف عربي دارند، نويسه‌هاي جداگانه درنظر گرفته‌شده‌است. يعني كليه حروف خاص فارسي (پ، چ، ژ، گ) و نيز «ك» و «ي» فارسي كه‌با حرف مشابه‌در عربي‌تفاوت نمايشي دارند، مكان‌جداگانه‌اي به‌خود اختصاص داده‌اند. كليه اعراب‌هاي متداول حضور دارند و ميان شكل‌فارسي/اردو و عربي ارقام نيز به‌علت شكل و رفتار متفاوت، تفاوت‌هايي منظور گشته‌است.
از طرف ديگر، علائم نقطه‌گذاري چون نقطه و فاصله كه‌شكلي یكساني‌در خط‌هاي لاتين و عربي دارند، كد يكسان‌ دارند. علائمي‌چون پرانتز نيز، بسته به جهت متن، آينه‌اي مي‌شوند، به طور مثال، نويسه 0028 نماينده «پرانتز باز» است، و نه«پرانتز سمت‌چپ». يوني‌كد اتصال‌مجازي و فاصله مجازي را نيز تحت‌نام‌هاي «اتصال با عرض‌صفر» و «بي‌اتصالي با عرض‌صفر» به‌رسميت مي‌شناسد.
بدین ترتيب ملاتظه مي‌شود كه براي حل مشكلات موجود، و نيز رفتن به سوي يك استاندارد مقبول و همه‌جانبه، استاندارد يوني‌كد، روشي مناسب به نظر مي‌رسد.

اصطلاحات:

در مقابل character. كوچك‌ترين واحد متن. مثلاً يك حرف لاتين، يك اعراب فارسي، يكي علامت نقطه‌گذاري، يك نشانه بريل، يا يك نماد رياضي
در مقابل glyph. كوچك‌ترين واحد نمايش متن. براي بعضي نويسه‌ها مثل حروف فارسي و هندي ممكن است چند شكل موجود باشد. مثلاً « ب » و « ع » از اشكال‌نمايشي متسوب مي‌شوند
در مقابلcharacter set. مجموعه‌اي از نويسه‌ها كه‌به‌هر نويسه عددي اختصاص‌مي‌دهد كه نماينده آن نويسه متسوب مي‌شود و در تبادل اطلاعات مورد استفاده‌قرار مي‌گيرد
در مقابل codepage. سيستمي كه به‌هر نويسه دنباله مشخصي‌از بايت‌ها را متناظر مي‌كند. مجموعه‌نويسه‌ها مي‌توانند به‌شكل يا چند مجموعه‌كد قابل استفاده‌باشند.
منبع:www.developercenter.ir